package com.ks.user.service;

import com.ks.core.base.OperationContext;
import com.ks.core.dto.SearchCriteriaBase;
import com.ks.user.entity.OrgBase;
import com.baomidou.mybatisplus.service.IService;
import com.ks.user.entity.UserBase;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 组织机构表 服务类
 * </p>
 *
 * @author kingdee123
 * @since 2020-11-30
 */
public interface IOrgBaseService extends IService<OrgBase> {


    int setTenantAdmin(OperationContext operationContext, int tenantId);

    /**
     * 添加组织机构表
     *
     * @param orgBase
     * @return
     */
    int addOrgBase(OperationContext operationContext, OrgBase orgBase);

    /**
     * 初始化组织机构表
     *
     * @param iOrgCode
     * @param iMechanismName
     * @return
     */
    int insetOrgBase(OperationContext operationContext, String iOrgCode, String iMechanismName, int tenantId);

    /**
     * 修改组织机构表
     *
     * @param
     * @param orgBase
     * @return
     */
    int updateOrgBase(OperationContext operationContext, OrgBase orgBase);

    /**
     * 获取组织的树形结构
     *
     * @param tenantId
     * @return
     */
    Map<String, Object> getTree(int tenantId);

    /**
     * 获取租户组织信息接口
     *
     * @param orgId
     * @return
     */
    //Map<String, Object> getOrgBaseList(int orgId, String AuthorToken);

    /**
     * 开启和关闭租户的服务状态
     *
     * @param tenantId
     * @param ServiceStatus
     * @return
     */
    int updateTenantServiceStatus(int tenantId, Integer ServiceStatus);


    Map<String, Object> getOrgBaseList(OperationContext operationContext,SearchCriteriaBase searchCriteriaBase);


    /**
     * 根据租户iD获取他的组织
     * @param operationContext
     * @return
     */
    List<OrgBase> getList(OperationContext operationContext);

    /**
     * 添加员工用户接口
     *
     * @param
     * @return
     */
    int addUserBase(OperationContext operationContext, int employeeId);

}
